package ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.modelo;

public class Descanso extends Camino {
	
	public Descanso() {
	}
	
	private static Long idFactory = null;
	
	private static Long getIdFactory() {
		if (idFactory == null) {
			idFactory = new Long(0);
		}
		idFactory = new Long(idFactory.longValue() + 1);
		return idFactory;
	}
	
	public static Descanso factory(Infraestructura anterior,
			Infraestructura posterior, Descanso descansoAnterior,
			Descanso descansoPosterior) {
		Descanso descanso = new Descanso();
		descanso.setId(getIdFactory());
		switch (descanso.getId().intValue()) {
		case(1):
			descanso.setHorizontal(false);
			break;
		case(2):
			descanso.setHorizontal(true);
			break;
		case(3):
			descanso.setHorizontal(true);
			break;
		case(4):
			descanso.setHorizontal(false);
			break;
		case(5):
			descanso.setHorizontal(false);
			break;
		case(6):
			descanso.setHorizontal(true);
			break;
		case(7):
			descanso.setHorizontal(true);
			break;
		default:
			descanso.setHorizontal(false);
			break;
		}
		descanso.setLargo(new Long(Configuracion.LARGO_CAMINO_DESCANSO));
		descanso.setCarro(null);
		descanso.setAnterior(anterior);
		descanso.setPosterior(posterior);
		descanso.setLargoDescanso((long) -1);
		descanso.setPuntoDescanso(null);
		return descanso;
	}
	
	public static Descanso factory() {
		return Descanso.factory(null, null, null, null);
	}
	
	/* (non-Javadoc)
	 * @see ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.modelo.Infraestructura#getTipo()
	 */
	@Override
	public String getTipo() {
		return "Descanso";
	}
	
	@Override
	public String toString() {
		return "Descanso [id = " + getId().toString() + "]";
	}

}
